package com.huilian.iotbox.admin.wap.dao;

import com.huilian.iotbox.data.dto.MerchantStoreDto;
import com.huilian.iotbox.data.po.MerchantStore;
import com.huilian.iotbox.data.vo.MerchantStoreVo;
import com.huilian.iotbox.data.vo.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 谢洛涛
 * @date 2021/1/11 17:44
 */
@Mapper
public interface MerchantStoreDao {

    Integer addMerchantStore(MerchantStoreDto merchantStoreDto);

    List<MerchantStore> findAllMerchantStoreByMchId(MerchantStoreDto merchantStoreDto);

    Integer update(MerchantStoreDto merchantStoreDto);

    MerchantStore findOneMerchantStoreById(MerchantStoreDto merchantStoreDto);

    List<MerchantStoreVo> findAllMerchantStoreByMemberId(MerchantStoreDto merchantStoreDto);

    Integer[] findAllMerchantStoreIdByUserId(UserInfo userInfo);

    List<MerchantStoreVo> findMerchantStoreIdByUserId(UserInfo userInfo);

    List<MerchantStore> getMerchantStore(MerchantStoreDto merchantStoreDto);

    List<MerchantStoreVo> findMerchantStoreList(MerchantStoreDto merchantStoreDto);

    MerchantStoreVo findMerchantStoreByUserIdByStoreId(MerchantStore merchantStore);

    /**
     * 根据DefaultStatus查询id.
     *
     * @param merchantStoreDto
     * @return
     */
    Integer findDefaultStatus(MerchantStoreDto merchantStoreDto);

    /**
     * 根据场地名称和当前登录用户的Id查找有没有重复的名称.
     *
     * @return
     */
    Integer findByUserIdAndStoreName(MerchantStoreDto merchantStoreDto);

    /**
     * 查询默认的场地
     *
     * @param merchantStoreDto
     * @return
     */
    MerchantStoreVo findDefaultStore(MerchantStoreDto merchantStoreDto);

    List<MerchantStoreVo> findAllMerchantStoreByMerchantId(String merchantId);

    /**
     * 修改noticeMessageContentId
     *
     * @return
     */
    Integer updateNmcId(MerchantStoreDto merchantStoreDto);

    /**
     * 修改noticeMessageTagId
     *
     * @param merchantStoreDto
     * @return
     */
    Integer updateNmtId(MerchantStoreDto merchantStoreDto);

    /**
     * 修改首页消息绑定
     *
     * @return
     */
    Integer updateMessage(MerchantStoreDto merchantStoreDto);


    MerchantStoreVo findOneMerchantStoreByCondition(MerchantStoreDto merchantStoreCondition);

    List<MerchantStoreVo> findAllMerchantStoreByListId(@Param("merchantStoreDto") MerchantStoreDto merchantStoreDto);

    MerchantStore findOneMerchantStoreByIdAndPermission(MerchantStoreDto merchantStoreDto);

    int updateById(MerchantStoreDto updateStore);

    List<MerchantStoreVo> findAreaLedgerProportionAndPage(@Param("merchantStoreDto") MerchantStoreDto merchantStoreDto);

    int updateIsDeleteById(@Param("id") Integer id);

    List<MerchantStoreVo> findMerchantStoreIdByUserIdAndDeviceTypeId(MerchantStoreDto merchantStoreDto);

    Integer defaultAddMerchantStore(MerchantStoreDto merchantStoreDto);


    List<MerchantStore> findAllMerchantStoreByIdAndPermission(MerchantStoreDto merchantStoreDto);

    List<MerchantStore> findAllInventoryByOutTradeNo(MerchantStoreDto merchantStoreDto);
}
